package com.sumainfor.pc.epc.dao.MktFeign;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @Author Eddy·Chen
 * @Email 835033913@qq.com
 * @Create 2019-05-17 13:57
 */
public interface GmfProviderMapper {

    /**
     * 查询计划数
     *
     * @param miId
     * @param startTime
     * @param endTime
     * @return
     */
    int getPlanCount(@Param("miId") Integer miId, @Param("startTime") String startTime, @Param("endTime") String endTime);


    /**
     * 查询套数
     *
     * @param miId
     * @param startTime
     * @param endTime
     * @return
     */
    int getHousingCount(@Param("miId") Integer miId, @Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * 查询装修成本
     *
     * @param miId
     * @param startTime
     * @param endTime
     * @param col       要计算的字段
     * @return
     */
    String getPlanCost(@Param("miId") Integer miId, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("col") String col);

    /**
     * 查询子表格 装修计划
     *
     * @param page
     * @param miId
     * @param startTime
     * @param endTime
     * @return
     */
    IPage<Map<String, Object>> selectPlanForSubTable(Page page, @Param("miId") Integer miId, @Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * 查询子表格 装修套数
     *
     * @param page
     * @param miId
     * @param startTime
     * @param endTime
     * @return
     */
    IPage<Map<String, Object>> selectHousingForSubTable(Page page, @Param("miId") Integer miId, @Param("startTime") String startTime, @Param("endTime") String endTime);


    /**
     * 查询装修 所需价格
     *
     * @param page
     * @param miId
     * @param startTime
     * @param endTime
     * @return
     */
    IPage<Map<String, Object>> selectCostForSubTable(Page page, @Param("miId") Integer miId, @Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * 查询装修计划中房源
     *
     * @param params
     * @return
     */
    List<Map<String, Object>> selectPlanHousingTableForAll(@Param("map") Map<String, Object> params);
}
